﻿/**********************************************************************
 * @file   FITKAcousticsLoadManager.h
 * @brief  载荷管理器声明
 * @author liuzhonghua (liuzhonghuaszch@163.com)
 * @date   2024-12-05
 *********************************************************************/
#ifndef _FITK_ACOUSTICS_LOAD_MANAGER_H___
#define _FITK_ACOUSTICS_LOAD_MANAGER_H___
 
#include "FITKAcousticsPhysicsAPI.h"
#include "FITK_Kernel/FITKCore/FITKAbstractDataManager.hpp"
#include "FITKAcousticsAbstractLoad.h"

namespace Acoustics
{
    /**
     * @brief 载荷管理器
     * @author liuzhonghua (liuzhonghuaszch@163.com)
     * @date   2024-12-05
     */
    class FITKAcousticsPhysicsAPI FITKAcousticsLoadManager : public Core::FITKAbstractDataObject,
            public Core::FITKAbstractDataManager<FITKAcousticsAbstractLoad>
    {
        FITKCLASS(Acoustics, FITKAcousticsLoadManager);
    public:
        /**
         * @brief Construct a new FITKAcousticsLoadManager object
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-12-05
         */
        explicit FITKAcousticsLoadManager() = default;
        /**
         * @brief Destroy the FITKAcousticsLoadManager object
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-12-05
         */
        virtual ~FITKAcousticsLoadManager() = default;
        /**
         * @brief 根据类型获取载荷
         * @param[i]  t             类型
         * @return QList <FITKAcousticsAbstractLoad*> 
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-12-05
         */
        QList <FITKAcousticsAbstractLoad*> getLoadByType(
            FITKAcousticsAbstractLoad::AcousticsLoadType t);

    protected:
    private:
    };
}


#endif
